package com.hqd.jjvm.classpath;

import java.io.IOException;
import java.util.List;

/**
 * class读取接口
 *
 * @author hqd
 */
public interface ClassResource {
    /**
     * 文件后缀名
     */
    String CLASS_FILE_SUFFIX = ".class";
    String JAR_FILE_SUFFIX = ".jar";
    String ZIP_FILE_SUFFIX = ".zip";
    /**
     * 通配符
     */
    String WILDCARD_CHARACTER = "*";

    /**
     * 读取所有class信息
     *
     * @return
     * @throws IOException
     */
    List<ClassFileInfo> readAllClass() throws IOException;

    /**
     * 读取一个class信息
     *
     * @param classNamePath
     * @return
     * @throws IOException
     */
    ClassFileInfo readClass(String classNamePath) throws IOException;

    /**
     * 是否已经读取class
     *
     * @param classPath
     * @return
     */
    boolean isExists(String classPath);
}
